package com.itheima._02字节缓冲流;

import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.InputStream;

/**
     目标：BufferedInputStream字节缓冲输入流

            字节流                                                    字符流
     字节输入流                字节输出流                    字符输入流           字符输出流
     InputStream             OutputStream                  Reader              Writer           (抽象类，只是类型)
     FileInputStream         FileOutputStream              FileReader          FileWriter       (实现类，真正使用的管道)
     BufferedInputStream     BufferedOutputStream          BufferedReader      BufferedWriter   (实现类，高级缓冲流)

     BufferedInputStream字节缓冲输入流：
            可以提高字节输入流读取数据的性能。
     BufferedInputStream创建对象:
            -- public BufferedInputStream(InputStream is): 把字节输入流管道包装成高级缓冲字节输入流管道。
     BufferedInputStream功能：
            -- 缓冲字节输入流只是提高了字节输入流读取数据的性能
            -- 功能几乎无变化
     小结:
            缓冲字节输入流提高了字节输入流读取数据的性能，功能几乎无变化。
            缓冲字节输入流是在启动的时候在内存中开辟8KB的缓冲池，先提取8KB数据，以后读数据就在内存中进行！
 */
public class BufferedInputStreamDemo01 {
    public static void main(String[] args) throws Exception {
        // 1.创建一个字节输入流管道与源文件接通
        InputStream is =
                new FileInputStream("src\\com\\itheima\\_02字节缓冲流\\BufferedInputStreamDemo01.java");

        // 2.把字节输入流管道包装成一个高级的字节缓冲输入流管道
        BufferedInputStream bis = new BufferedInputStream(is);

        byte[] buffer = new byte[1024];
        int len = 0 ;
        while((len = bis.read(buffer))!=-1){
            System.out.print(new String(buffer,0,len));
        }
    }
}
